לבנות אלגוריתם אשר מקבל שעה hh:mm ומוציא את הזווית המינימאלית בין מחוג השעות למחוג הדקות
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2020
ניקח את הדקות נחלק ב60 ונוסיף לשעות, נקבל מספר עשרוני שקטן מ12 נסמנוX.
ניקח את הדקות נחלק ב5 ושוב נקבל מספר עשרוני קטן מ12 נסמנו Y.
נחשב אתX-Y וזה יהיה השעה שמייצגת את הזווית בין המחוגים. נחלק ב12 נבצע ערך מוחלט ונכפיל ב2*PI ונקבל זווית ברדיאנים, מה שנותר לבדוק זה האם היא הזווית הקהה או החדה ואת זה נבדוק ע"י חיסור מ2*PI ובדיקה מה יותר קטן ואותו נחזיר.
ראיון 1: מתואר סיפור על מפעל שמכיל ירקות ויש מכונה שממיינת את הירקות לפי סוג, מלפפון או עגבניה. האלגוריתם מזהה לפי תמונה מה הסוג וזה הפלט. האלגוריתם יכול להתחרט ולפלוט פלט אחר בעוד מספר שניות למשל. בהתחלה הפלט הוא "לא יודע" האלגוריתם עוד לא קולט מה הסוג של הירק.המכונה ממיינת לפי הפלט הראשון. עבור הצלחה של מיון של עגבניה המפעל מרוויח 10 שקל עבור כשלון מפסיד 20. עבור הצלחה של מלפפון הרווח הוא 5 שקל ועבור כשלון ההפסד 10. אנחנו רוצים לדעת איזה אלגוריתם ימקסם את הרווחים של החברה, מוצגים באחוזים המדדים של טסט מסוים שהשתמש ב2 אלגוריתמים. הטסט מבצע עבור כל פרי 5 בדיקות במשך 5 שניות. להסביר מה הבעיה בטסט מה לא הגיוני, למצוא את זה בקוד הנתון. ואחכ להציע טסט אחר ולכתוב אותו בקוד.
תשובות
הוסף תשובה
|
לצפיה בתשובות
פברואר 2020
לא צריך לעשות 5 בדיקות, בכל מקרה המכונה ממיינת לפי הפלט הראשון, לכן עד שיש פלט שהוא שונה מ"לא ידוע" נחכה (לולאה) , וכשיש פלט נשווה את עם התוצאה האמיתית תוך כדי התחשבות בנתונים של רווח והפסד לפי כל מקרה. את כל זה נחלק בזמן שלקח לנו לחכות כל פעם עד שהגיע פלט שיכלנו להתקדם הלאה, כלומר סוכמים את הרווח ואת הזמן ובסוף התשובה היא רווח /זמן .
באופן כללי היו 4 שלבים:
שלב ראשון - מבחן בית ב - codility אשר התחלק ל - 3 תתי מבחנים:
מבחן ראשון 30 דקות, מבחן שני 90 דקות ומבחן שלישי 150 דקות.
שלב שני - ראיון עם ראש צוות.
שלב שלישי - ראיון עם ראש מחלקה.
שלב רביעי - ראיון עם HR.
שאלות מתוך הראיון
שלב ראשון (מבחן בית) - מבחן של 30 ו 90 דקות הם סבירים וניתן לסיים בחצי מהזמן. מבחן של ה - 150 דקות הוא קשה עם רושמים אותו ב - C++ כמו שאני עשיתי.
שלב שני (ראיון עם ראש צוות) - תיקון קוד. בקוד היה צריך לגרום לתוכנה להיות single thread ושיעמוד בדרישות שביקשו. ואז ביקשו שיהיה multi thread ויעמוד בדרישות שנתנו.
מכניסים מכתב סודי הכתוב בשפה האנגלית למטריצה של chars עם 50 עמודות (כל תא מכיל אות בודדת/רוח). בכדי להצפין את ההודעה מערבבים את עמודות המטריצה באופן לא ידוע (עמודות בלבד) כך שמתקבל טקסט לא קריא.
א': כמה אפשרויות נצתרך לנסות בשביל לבדוק את כל התוצאות האפשריות עד שנמצא את המכתב המקורי?
ב': תן אלגוריתם יעיל לגילוי המכתב הסודי.
ג': מה החיסרון בפיתרון שהבאת.
ד: כיצד תתגבר על החיסרון הנל?
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2020
א': 50!
ב': ע"פ שכיחות של צמדים של זוגות אותיות (נניח th הרבה יותר שכיח מbd) ומכפלה שלערכי השכיחות של כל השורות והחזרת המקסימום.
ג: במקרה ויש צמד אותיות שהופיע עם שכיחות 0 זה מאפס את כל השורה
ד: להגדיר אפסילון קטן מאוד אך גדול מאפס שיהיה השכיחות בכל מקום שנתון 0 (נניח 0.00001O)